perm filename HINIT[KID,KMC] blob
sn#122891 filedate 1974-11-15 generic text, type T, neo UTF8
TITLE HINIT
HSTCHN←12
X1←6
X2←7
X3←X2+1
X4←X3+1
TOP: CLRBFI
OUTSTR [ASCIZ/TYPE THE CHILD'S NAME (ONE TO SIX CHARACTERS),/]
OUTSTR CRLF
OUTSTR [ASCIZ/ FOLLOWED BY CARRIAGE RETURN: /]
MOVEI X1,0 ;CLEAR AC
MOVEI X3,0
MOVEI X4,7 ;ALLOW FROM 1 TO 6 CHARACTERS
NAMEIN: INCHRW X1 ;GET A CHARACTER
SUBI X1,040 ;CONVERT TO SIXBIT
JFFO X1,NONBL ;IGNORE IT IF ITS BLANK
JRST ,NAMEIN ; AND GO TRY AGAIN
NONBL: JUMPL X1,GOTNAM ;IF ITS A CARRIAGE RETURN, NAME IS IN
LSH X3,6 ;MAKE ROOMN FOR NEW CHARACTER
ORM X1,X3 ;INSERT IT
SOJ X4, ;COUNT IT
JRST ,NAMEIN ;GO GET ANOTHER
GOTNAM: SOJE X4,SAVNAM ;IF FILE NAME IS LEFT-ADJUSTED, GO SAVE IT
LSH X3,6 ; ELSE SHIFT IT LEFT ONE CHARACTER
JRST GOTNAM ; AND GO TEST AGAIN
SAVNAM: MOVEM X3,FILNAM ;SAVE THE FILE NAME
INIT HSTCHN,17 ;INITIALIZE IN DUMP MODE
SIXBIT /DSK/
XWD 0,0
JRST BADOPN ;<ERROR BRANCH>
LOOKUP HSTCHN,FILNAM ;SEE IF A FILE OF THIS NAME ALREADY EXISTS
JRST NOFILE ;IF IT DOES NOT, GO AHEAD
JRST NOTNEW ;GO OUT IF FILE ALREADY EXISTS
NOFILE: ENTER HSTCHN,FILNAM ;OPEN FILE FOR OUTPUT
JRST BADENT ;<ERROR BRANCH>
OUTSTR [ASCIZ/PLEASE STAND BY/]
MOVEI X1,200 ;SET TO COUNT 128 BLOCKS
NEWBLK: SOJE X1,CLOSE ;IF WEVE WRITTEN ENOUGH, GO CLOSE
OUTPUT HSTCHN,COMAND ;WRITE OUT A BLOCK
JRST NEWBLK ;AND GO DO IT AGAIN
CLOSE: CLOSE HSTCHN,2 ;CLOSE UP SHOP
OUTSTR CRLF
OUTSTR [ASCIZ/FILE SUCCESSFULLY INITIALIZED/]
EXIT: CALL [SIXBIT/EXIT/] ;GO HOME
COMAND: IOWD 200,EMPTY ;OUTPUT EMPTY BLOCK OF LENGTH 128
0
EMPTY: 000010000000 ;INDIRECT ADRESSING USING REGISTER 8
777777777777 ;DEBUG AID FOR HISTORY PACKAGE
BLOCK 176 ;REST OF BLOCK IMMATERIAL
FILNAM: XWD 0,0 ;SLOT FOR FILE NAME
SIXBIT /HST/ ;EXTENSION IS HST
XWD 0,0
PPN: SIXBIT / 1KMC/ ;PROJECT-PROGRAMMER IS 1,KMC
BADOPN: OUTSTR [ASCIZ/BAD OPEN; PLEASE TRY AGAIN/]
JRST RESET ;GO TRY AGAIN
BADENT: OUTSTR [ASCIZ/BAD ENTER; PLEASE TRY AGAIN/]
JRST RESET
NOTNEW: OUTSTR [ASCIZ/FILE ALREADY EXISTS. PICK ANOTHER NAME./]
RESET: OUTSTR CRLF
MOVEI X3,0 ;CLEAR REGISTER 3
MOVEM X3,FILNAM+2 ;RESET FILE INFO
HRRM X3,FILNAM+1
MOVE X3,[SIXBIT/ 1KMC/]
MOVEM X3,PPN
RELEAS HSTCHN,0 ;FREE CHANNEL
JRST TOP ;AND GO TRY AGAIN
CRLF: 064240000000
END TOP